#ifndef IPv6ADDRESS
#define IPv6ADDRESS

#include <arpa/inet.h>
#include <string>
#include "helper.h"
#include <netinet/in.h>
#include <sys/types.h>



class IPv6Address
{
	public:
		IPv6Address();
		IPv6Address( const struct sockaddr_in6 &address );
		~IPv6Address();

		void setFromSockAddr( const struct sockaddr_in6 &address ); 
		struct sockaddr_in6* sockaddr();
		socklen_t sockaddrSize() const;
		void setAddress( const std::string &address );
		std::string address() const;
		void setPort( const std::string &port );
		void setPort( const uint16_t &port );
		std::string port( ) const;
		uint16_t portNum() const;
		void setFamily( const uint8_t &family ); 
		uint8_t family() const;

	private:
		struct sockaddr_in6 address_;
};

#endif

